// 本文件依赖Element PLUS MessageBox   模拟系统的消息提示框而实现的一套模态对话框组件，
// 用于消息提示、确认消息和提交内容。
// https://element-plus.org/zh-CN/guide/installation.html

import { ElMessageBox } from 'element-plus'
import router from '@/router/index.js'

export const handleNetworkError = (errStatus) => {
  const networkErrMap = {
    301: '用户名已存在',
    302: '用户名不存在',
    303: '登录密码错误',
    304: '验证码生成失败',
    305: '验证码错误',
    306: '验证码超时',
    307: '账号或密码格式有误',
    308: '更新的ID不存在',
    309: '要删除的ID不存在',
    310: '要查找的用户无反馈信息',
    311: '参数有误',
    400: '错误的请求',
    401: '未授权的请求，请联系管理员授权',
    402: '查询正常结束，查询结果为空',
    403: '资源不允许访问',
    404: '指定的资源不存在，或者URL错误',
    500: '系统异常',
    501: '服务器发生异常',
    502: '插入数据失败',
    503: '更新数据失败',
    504: '删除数据失败',
    505: '查询数据失败'
  }
  if (errStatus) {
    const html = networkErrMap[errStatus] ?? `其他连接错误 --${errStatus}`
    ElMessageBox.alert(`<strong> ${html}   </strong>`, '系统提醒', {
      dangerouslyUseHTMLString: true,
      type: 'error'
    })
    return
  }

  ElMessageBox.alert(`<strong>   无法连接到服务器！  </strong>`, '系统提醒', {
    dangerouslyUseHTMLString: true,
    type: 'warning'
  })
}

export const handleConfigureUserInfo = (config) => {
  // const json = sessionStorage.getItem('user') || ''
  config.headers['UserInfo'] = 'json'
  return config
}

export const handleConfigureAuth = (config) => {
  //   instance.defaults.headers.common['Authorization'] = AUTH_TOKEN
  const token = sessionStorage.getItem('token') || ''
  const userID = sessionStorage.getItem('userID') || ''
  config.headers['UserID'] = userID
  config.headers['Authorization'] = token
  return config
}

export const handleGeneralError = (data) => {
  ElMessageBox.alert(`<strong>  ${data.msg}  </strong>`, '系统提醒', {
    dangerouslyUseHTMLString: true,
    type: 'info'
  })
  if (data.code === 315) {
    console.log('跳转至登录页')
    //跳转
    router.push({ path: '/login' })
  }
  return null
}
